package com.zhi.service;

import com.zhi.entity.ALeave;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 请假记录逻辑service层
 */
public interface LeaveService {

    /**
     * 获得所有数据
	 * @return
     */
	public List<ALeave> getEntityList();

    /**
     * 获得所有数据带数据字典值
	 * @return
     */
	public List<Object[]> getEntityListWithCodeName();

    /**
     * 获得所有数据带数据字典值并分页
	 * @param pageable
     * @return
     */
	public Page<ALeave> getEntityListWithCodeName(Pageable pageable);

	/**
	 * 根据查询条件获得所有数据带数据字典值并分页
	 * @param pageable
	 * @return
	 */
	public Page<ALeave> getEntityListWithCodeName(Pageable pageable,List<String> studentIds,List<String> stateList);

	/**
	 * 根据查询条件获得所有数据带数据字典值并分页
	 * @param pageable
	 * @return
	 */
	public Page<ALeave> getEntityListWithCodeName2(Pageable pageable,List<Integer> aLeaveIds,List<String> stateList);

    /**
     * 根据id获得
	 * @param id
     * @return
     */
	public ALeave getOne(Integer id);

    /**
     * 根据对象获得
	 * @param aleave
     * @return
     */
	public List<ALeave> findAll(ALeave aleave);

    /**
     * 保存对象并返回对象
	 * @param leave
	 */
	public ALeave save(ALeave leave);

    /**
     * 编辑对象
	 * @param leave
	 */
	public void edit(ALeave leave);

    /**
     * 删除对象
	 * @param id
	 */
	public void delete(Integer id);

    /**
     * 根据对象获取数量
	 * @param leave
     * @return
     */
	public Integer count(ALeave leave);

}
